package com.eastfair.home.vo;

import com.eastfair.home.enumeration.SupervisionItemQuestionQuestionTypeEnum;
import com.eastfair.home.enumeration.SupervisionItemQuestionTextBoxTypeEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import lombok.Data;
import lombok.Builder;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.ToString;
import lombok.experimental.Accessors;
import com.eastfair.annotation.annotation.vo.VoInfo;
import com.eastfair.annotation.model.BaseVoGroupClass;
import java.io.Serializable;
import com.eastfair.vo.BaseVO;

/**
 * <p>
 * 实体类
 * 展台验收记录明细
 * </p>
 *
 * @author linan
 * @since 2022-11-29
 */
@Data
@ApiModel(value = "BoothAcceptanceDetailVO", description = "展台验收记录明细")
public class BoothAcceptanceDetailVO extends BaseVO implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "主键")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @VoInfo(groups = {BaseVoGroupClass.all.class})
    private Long id;

    /**
     * 是否启用（应用状态）：1是；0否
     */
    @ApiModelProperty(value = "是否启用（应用状态）：1是；0否")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Integer isEnabled;
    /**
     * 是否删除：1是；0否
     */
    @ApiModelProperty(value = "是否删除：1是；0否")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Integer isDeleted;
    /**
     * 项目id
     */
    @ApiModelProperty(value = "项目id")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Long projectId;
    /**
     * 子系统id
     */
    @ApiModelProperty(value = "子系统id")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Long subsystemId;
    /**
     * 租户id
     */
    @ApiModelProperty(value = "租户id")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Long tenantId;
    /**
     * 修改人姓名
     */
    @ApiModelProperty(value = "修改人姓名")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @Size(max = 100, message = "修改人姓名长度不能超过100")
    private String updatedName;
    /**
     * 验收记录ID
     */
    @ApiModelProperty(value = "验收记录ID")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Long acceptanceRecordId;
    /**
     * 监督项管理ID
     */
    @ApiModelProperty(value = "监督项管理ID")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Long supervisionItemManagementId;
    /**
     * 文本框内容
     */
    @ApiModelProperty(value = "文本框内容")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @Size(max = 65535, message = "文本框内容长度不能超过65,535")
    private String textBoxContent;
    /**
     * 选项1勾选状态：1是；0否
     */
    @ApiModelProperty(value = "选项1勾选状态：1是；0否")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Integer optionOneCheckStatus;
    /**
     * 选项1原因
     */
    @ApiModelProperty(value = "选项1原因")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @Size(max = 100, message = "选项1原因长度不能超过100")
    private String optionOneReason;
    /**
     * 选项2勾选状态：1是；0否
     */
    @ApiModelProperty(value = "选项2勾选状态：1是；0否")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Integer optionTwoCheckStatus;
    /**
     * 选项1原因
     */
    @ApiModelProperty(value = "选项1原因")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @Size(max = 100, message = "选项1原因长度不能超过100")
    private String optionTwoReason;
    /**
     * 选项3勾选状态：1是；0否
     */
    @ApiModelProperty(value = "选项3勾选状态：1是；0否")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Integer optionThreeCheckStatus;
    /**
     * 选项1原因
     */
    @ApiModelProperty(value = "选项1原因")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @Size(max = 100, message = "选项1原因长度不能超过100")
    private String optionThreeReason;
    /**
     * 选项4勾选状态：1是；0否
     */
    @ApiModelProperty(value = "选项4勾选状态：1是；0否")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Integer optionFourCheckStatus;
    /**
     * 选项1原因
     */
    @ApiModelProperty(value = "选项1原因")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @Size(max = 100, message = "选项1原因长度不能超过100")
    private String optionFourReason;
    /**
     * 选项5勾选状态：1是；0否
     */
    @ApiModelProperty(value = "选项5勾选状态：1是；0否")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Integer optionFiveCheckStatus;
    /**
     * 选项1原因
     */
    @ApiModelProperty(value = "选项1原因")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @Size(max = 100, message = "选项1原因长度不能超过100")
    private String optionFiveReason;


    /**
     * 序号
     */
    @ApiModelProperty(value = "序号")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Integer sort;
    /**
     * 问题标题
     */
    @ApiModelProperty(value = "问题标题")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private String title;
    /**
     * 问题类型 #{ESSAY_QUESTION:问答题;SINGLE_CHOICE:单选题;MULTIPLE_CHOICE:多选题}
     */
    @ApiModelProperty(value = "问题类型 #{ESSAY_QUESTION:问答题;SINGLE_CHOICE:单选题;MULTIPLE_CHOICE:多选题}")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private SupervisionItemQuestionQuestionTypeEnum questionType;
    /**
     * 最小字数
     */
    @ApiModelProperty(value = "最小字数")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Integer minWordage;
    /**
     * 最大字数
     */
    @ApiModelProperty(value = "最大字数")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Integer maxWordage;
    /**
     * 文本框类型 #{SINGLE:单行;MULTIPLE:多行}
     */
    @ApiModelProperty(value = "文本框类型 #{SINGLE:单行;MULTIPLE:多行}")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private SupervisionItemQuestionTextBoxTypeEnum textBoxType;
    /**
     * 选项1
     */
    @ApiModelProperty(value = "选项1")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @Size(max = 256, message = "选项1长度不能超过256")
    private String optionOne;
    /**
     * 选项1允许填空：1是；0否
     */
    @ApiModelProperty(value = "选项1允许填空：1是；0否")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Integer optionOneFill;
    /**
     * 选项2
     */
    @ApiModelProperty(value = "选项2")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @Size(max = 256, message = "选项2长度不能超过256")
    private String optionTwo;
    /**
     * 选项2允许填空：1是；0否
     */
    @ApiModelProperty(value = "选项2允许填空：1是；0否")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Integer optionTwoFill;
    /**
     * 选项3
     */
    @ApiModelProperty(value = "选项3")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @Size(max = 256, message = "选项3长度不能超过256")
    private String optionThree;
    /**
     * 选项3允许填空：1是；0否
     */
    @ApiModelProperty(value = "选项3允许填空：1是；0否")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Integer optionThreeFill;
    /**
     * 选项4
     */
    @ApiModelProperty(value = "选项4")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @Size(max = 256, message = "选项4长度不能超过256")
    private String optionFour;
    /**
     * 选项4允许填空：1是；0否
     */
    @ApiModelProperty(value = "选项4允许填空：1是；0否")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Integer optionFourFill;
    /**
     * 选项5
     */
    @ApiModelProperty(value = "选项5")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @Size(max = 256, message = "选项5长度不能超过256")
    private String optionFive;
    /**
     * 选项5允许填空：1是；0否
     */
    @ApiModelProperty(value = "选项5允许填空：1是；0否")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Integer optionFiveFill;
    /**
     * 问题项id
     */
    @ApiModelProperty(value = "问题项id")
    private Long questionId;

    /**
     * 必答：1是；0否
     */
    @ApiModelProperty(value = "必答：1是；0否")
    private Integer required;
}
